package com.qf;

import com.qf.domain.Student;
import com.qf.domain.Student2;
import com.qf.mapper.StudentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MainTest {
    public static void main(String[] args) throws IOException {
        //读取核心配置文件(这个方法中使用的就是类加载器)
        InputStream is = Resources.getResourceAsStream("mybatis.xml");
        //读取核心配置中的信息，获取Factory工厂对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

        //获取接口代理对象
        //SqlSession是对Connection的封装
        SqlSession sqlSession = factory.openSession();
        //通过mybatis框架内部的程序，对接口生成一个代理对象（动态代理技术）
        StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

        //执行操作
        List<Student2> studentList = studentMapper.findAll();
        //输出结果
        studentList.forEach(System.out::println);

        //释放资源
        sqlSession.close();
    }
}
